package com.noble.glamour.module.logic.model.mgr;

import com.noble.library.observe.ModuleBase;

/**
 * 应用信息管理
 */
public interface AppMgr extends ModuleBase {

    // ================渠道与包信息================
    /**
     * 获取渠道配置
     */
    String getChannel();

    /**
     * 获取包名
     *
     * @return 安装包名
     */
    String getPackageName();

    /**
     * 获取当前软件签名
     *
     * @return 当前软件签名，如果未获取到，返回""
     */
    String getSignature();

    /**
     * 获取应用的版本号
     *
     * @return 版本号，如果没有获取到返回0
     */
    int getVerCode();

    /**
     * 获取应用的版本名
     *
     * @return 版本名，如果没有获取到返回""
     */
    String getVerName();

    // ================软件状态信息================

    /**
     * 获取当前进程名称
     *
     * @param pid 进程id
     * @return 进程名称
     */
    String getProcessName(int pid);

    /**
     * 是否Debug模式
     */
    boolean isDebug();

    /**
     * 判定应用是否在前台运行。
     *
     * @return 前台运行返回true，否则返回false。
     */
    boolean isForeground();

    /**
     * 获取系统时间，经过了服务器时间修正。毫秒级
     */
    long getTime();

    /**
     * 注意是秒级别用错了 获取系统时间，经过了服务器时间修正。秒级
     */
    long getSecondTime();

    /**
     * 获取屏幕高度
     */
    int getScreenHeight();

    /**
     * @return 获取软件状态栏高度
     */
    int getStatusBarHeight();
}